/**
 * 
 */
package com.gwcloud.leetcode.hot100;

import java.util.Stack;

/**
 * @ClassName   : Leetcode0032 
 * @author      : ganwei 
 * @date        : 2020年5月13日
 * @Description : Leetcode0032 最长有效括号
 */
public class Leetcode0032 {
	/**
	 * -解题思路，通过栈来解决问题
	 */
    public int longestValidParentheses(String s) {

    	int maxans = 0;
    	Stack<Integer> stack = new Stack<Integer>();
    	stack.push(-1);
    	for(int i = 0; i < s.length(); i++){
    		if(s.charAt(i) == '('){
    			stack.push(i);
    		}else{
    			stack.pop();
    			if(stack.isEmpty()){
    				stack.push(i);
    			}else{
    				maxans = Math.max(maxans, i - stack.peek());
    			}
    		}
    	}
    	return maxans;
    }
    
    public static void main(String[] args){
    	
    }
}
